Turbo decoder using parallel processing

ABSTRACT

A method of decoding using a log posterior probability ratio L(u k ), which is a function of forward variable α (.) and backward variable β (.). The method comprises dividing the forward variable α (.) and the backward variable β (.) into, for example, two segments p and q, where p plus q equal the length of the code word U. The forward segments α (.) are parallel calculated, and the backward segments β (.) are parallel calculated. The ratio L(u k ) is calculated using the parallel calculated segments of α (.) and β (.).

BACKGROUND AND SUMMARY OF THE INVENTION

[0001] The present invention relates generally to decoders and, morespecifically, to a turbo decoder that reduces processing time for thecomputation of A Posteroiri Probability (APP) and is suitable forimplementation in parallel processing architectures.

[0002] Data delivered over a telecommunication channel are subject tochannel noise, channel fading, and interferences from other channels. Asa result, data received at the destination are usually “altered” by thechannel from those delivered at the source. To ensure error-freetransmission, the data are encoded before transmission by a channelencoder to allow the data receiver to detect or correct the errors. Forexample, if bit 0 is encoded as 000 and bit 1 is encoded as 111, thenwhen one bit error occurs, 000 may become 100, and 111 may becomes 101.The receiver can correct 100 as 000 (bit 0) and 101 as 111 (bit 1) bythe “majority rule” or the hamming distance. The part of receiverresponsible for correcting errors is called a channel decoder.

[0003] Turbo encoders and decoders are used in emerging high-speedtelecommunications transmission systems, such as terrestrial digital TVcommunication systems, and third generation wireless (e.g., WCDMA)communication systems. A turbo decoder has been demonstrated to approachthe error correcting limit on both AWGN and Rayleigh fading channels.

[0004] Despite the error-correcting efficiency, however, a turbo decoderis computing intensive. To meet the real-time performance (e.g., a fewmillisecond), it is usually implemented in ASIC. If a turbo decoder isto be implemented in software running on a DSP or a CPU, as in thecontext of software defined radio, its real-time performance will beimproved.

[0005] A 3GPP turbo encoder (FIG. 1) consists of a parallelconcatenation of two identical RSC (Recursive Systematic Convolutional)encoders separated by an interleaver. The info word U of length K isencoded by the first RSC encoder, and the interleaved info word isencoded by the second RSC encoder. The interleaver de-correlates theinputs to the two RSC's by reordering the input bits to the second RSC,so that it is unlikely that the encoded bits from both RSC's have lowweight code words at the same time. Also, it helps the encoded bits tocope with bursty noise. In 3GPP turbo encoder, a pseudo-random blockinterleaver is used. Both RSC encoded words are terminated by a trellistermination. The turbo encoded words are consists of systematic bits andtwo parity bits (U, Xp1, Xp2).

[0006] As shown in FIG. 2, the standard turbo decoder consists of twoconcatenated SISO (Soft Input Soft Output) blocks, one for each set ofsystematic and parity bits, (U′,Xp1′) and (U′,Xp2′), where Xp1′ and Xp2′denote the noisy version of Xp1 and Xp2, respectively, and the same forU′ (U refers to the info words). The SISO blocks are A PosterioriProbability (APP) decoders also know as Maximum A Posteriori (MAP)decoders. The two SISO blocks are separated by the same interleaver (asthe encoder) and its inverse block, the deinterleaver. Upon reception ofbits from channel and priori information, each SISO block computes logposterior ratios of each bit with well-known forward and backwardalgorithm. Once SISO computes the log posterior ratios of all bits, itseparates a probabilistic entity that was calculated based on its inputfrom overall posterior, then pass it to the other SISO block. Thisprobabilistic entity is often called extrinsic information (L12 and L21in FIG. 2) for the other SISO block to use as prior information. The twoSISO blocks run in an iterative scheme, mutually exchanging extrinsicinformation. After the required number of iterations is completed, harddecision is made based on accumulated soft information up to theiteration.

[0007] The log posterior probability ratio can be written as:$\begin{matrix}{{{L\left( u_{k} \right)} = {{\log \left( \frac{P\left( {u_{k} = \left. {+ 1} \middle| y \right.} \right)}{P\left( {u_{k} = \left. {- 1} \middle| y \right.} \right)} \right)} = {\log \left( \frac{\sum\limits_{S^{+}}{{P\left( {S_{k - 1},S_{k},y} \right)}/{P(y)}}}{\sum\limits_{S^{-}}{{P\left( {S_{k - 1},S_{k},y} \right)}/{P(y)}}} \right)}}},} & (1)\end{matrix}$

[0008] where S⁺ and S⁻ denote the set of all possible state transitionscaused by data input u_(k)=+1 and u_(k)=−1, respectively, and y denotesthe set of observations, y=(y₁, . . . , y_(k)) where y_(k)=(u_(k)′,x_(k)′), k=1, . . . , K. Note that yε(U′, Xp1′, Xp2′).

[0009] As usual, the posterior probability can be obtained by way ofcomputing weighted likelihood, where weights are provided by the priorprobability of the event u_(k). Direct evaluation of weighted likelihoodrequires the summations over a very large number of state patterns,which is proportional to the sequence length K. Because of thecombinatorial complexity, it is not computationally feasible even for areasonable length of the sequence.

[0010] To reduce the computation, an efficient procedure, known asforward and backward algorithm, is often used. In this algorithm, theposterior probability P(u_(k)|y) is factorized into following 3 terms:

[0011] Forward variable, α_(k)(.),

[0012] Backward variable,β_(k)(.),

[0013] State transition probability, γ_(k)(.,.).

[0014] The α_(k)(.) is the joint probability of the observations y₁, . .. , y_(k) and the state at time k, that is α_(k)(S)=P(S_(k), y₁, . . . ,y_(k)). The β_(k)(.) represents the conditional probability of futureobservations given state at time k,β_(k)(S)=P(y₁, . . . ,y_(K+1)|S_(k)). The γ_(k)(.,.) is the probability of the statetransitions from k−1 to k, caused by u_(k), and expressed as γ_(k)(S′,S)=P(S_(k)=S,y_(k)|S_(k−1)=S′).

[0015] The procedure of recursive calculation of α_(k)(S) is implementedaccording to${\alpha_{k}(S)} = {\sum\limits_{S^{\prime}}{{\alpha_{k - 1}\left( s^{\prime} \right)}{{\gamma_{k}\left( {S^{\prime},S} \right)}.}}}$

[0016] For β_(k)(S), the calculation is proceeded recursively as:${\beta_{k}(S)} = {\sum\limits_{S^{\prime}}{{\beta_{k + 1}\left( S^{\prime} \right)}{{\gamma_{k + 1}\left( {S,S^{\prime}} \right)}.}}}$

[0017] Since the turbo encoder is expected to start and end in state 1,the initial conditions for α_(k)(.) and β_(k)(.) are known and given asα₀(S)=δ_({S,1}) and β_(K)(S)=δ_({S,1}), respectively, where δ_({,.})denote the Kronecker delta.

[0018] Calculation of the posterior entity L(u_(k)) as a functionf(α_(k)(.), β_(k)(.)) is then equivalent to: $\begin{matrix}{{P\left( u_{k} \middle| y \right)} = \frac{\sum\limits_{S^{*}}{{\alpha_{k - 1}\left( s^{\prime} \right)}{\gamma_{k}\left( {S^{\prime},S} \right)}{\beta_{k}(S)}}}{P(y)}} & (2)\end{matrix}$

[0019] where S* is the set of state pairs corresponding to all statetransitions caused by u_(k)=+1/−1, and P(y) is a normalization constant.

[0020] The procedure of forward and backward algorithm is summarized as:

[0021] Calculate y_(k)(.,.), k=1,2, . . . , K;

[0022] Calculate α_(k)(.,.) forward recursively, k=0,1,2, . . . ,K;

[0023] Calculate β_(k)(.,.) backward recursively, k=K,K−1, . . . 0;

[0024] Calculate (2) to form (1).

[0025] The present invention is a method of decoding using a logposterior probability ratio L(u_(k)), which is a function of forwardvariable α (.) and backward variable β (.). The method comprisesdividing the forward variable α (.) and the backward variable β (.)into, for example, two segments p and q, where p plus q equal the lengthof the codeword U. The forward segments α (.) are parallel calculated,and the backward segments β (.) are parallel calculated. The ratioL(u_(k)) is calculated using the parallel calculated segments of α (.)and β (.). The first forward segment is calculated from α₁(.), . . . ,α_(p)(.) starting from α₀(.), whereas the second forward segment iscalculated from α_(p+1)(.), . . . , α_(K)(.) starting from an estimatedα_(p)(.). The first backward segment is calculated from β_(K)(.), . . ., β_(q+1)(.) starting from β_(k)(.), and the second backward segment iscalculated from β_(q)(.), . . . , β₁(.) starting from an estimatedβ_(q+1)(.)

[0026] To obtain the estimated initial point α_(p+1)(.), the forwardvariable is calculated recursively from p−d+1 where d is an arbitraryamount of time and the state at time p−d+1 is treated as a uniformrandom variable. Similarly, for β_(q+1)(.), the backward variable iscalculated from q+d and again the state at time q+d is treated as auniform random variable. With treating the states at time p−d+1 and q+das uniform random variables, no informative prior knowledge of thestates at the time is claimed.

[0027] The arbitrary amount of time, d, is in the range of 1 to 20 ormay be in the range of 15 to 20. Also, the starting points for theestimated probability may also be a predetermined state. Thispredetermined state may be one divided by the number of possible states.

[0028] The method may include dividing the forward variable α (.) andthe backward variable β (.) into more than two segments, and each of theforward and reverse segments would be calculated in parallel.

[0029] The process is performed in a signal receiver including adecoder.

[0030] These and other aspects of the present invention will becomeapparent from the following detailed description of the invention, whenconsidered in conjunction with accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

[0031]FIG. 1 is a block diagram of a 3GPP turbo decoder of the priorart.

[0032]FIG. 2 is a block diagram of a 3GPP turbo decoder of the priorart.

[0033]FIG. 3 is a graph of bit error rate (BER) for a turbo decoder ofthe prior art and for a turbo decoder of the present invention undervarious signal to noise ratios (SNRs).

[0034]FIG. 4 is a graph of block error rate or packet error rate (BLER)of the prior art turbo decoder and a turbo decoder according to thepresent invention under various SNR.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] One problem with the standard turbo decoding algorithm is that ifthe size of input sequence K is large, the time required for thecomputation of the above forward and backward variables grows, causing along latency as we go through the forward and backward algorithms. K mayreach 5114 bits. To reduce the time in calculating α_(k)(.) andβ_(k)(.), the input data is divided into M segments and simultaneouslycalculate the α_(k)(.) and β_(k)(.) for the M segments. Truncation lossmay occur with this segmnent-based approach; however, simulation resultsshow that the loss was negligible when M=2.

[0036] In theory, this parallel scheme reduced the computation to nearly1 out of M of the original calculation of α_(k)(.) and β_(k)(.) (e.g. ½for M=2). The parallel computing is for the calculation of α_(k)(.) andβ_(k)(.), which are the most computational intensive part of a turbodecoder.

[0037] The parallel algorithm will be discussed for the case of M=2 asan example. For M>2, the algorithm is similar. The algorithm consists ofthe following steps:

[0038] 1. Divide the forward and the backward variable into two parallelsegments of size p and q, respectively, where p+q=K.

[0039] 2. Calculate the four segments simultaneously with the followingfour processes:

[0040] Process 1: calculate α₁(.), . . . , α_(p)(.) starting from α₀(.);

[0041] Process 2: calculate α_(p+1)(.), . . . , α_(k)(.) starting froman estimated α_(p)(.), say α_(p)′(.);

[0042] Process 3: calculate (backwardly) β_(k)(.), . . . , β_(q+1)(.)staring from β_(k)(.); and

[0043] Process 4: calculate (backwardly) β_(q)(.), . . . ,β₁(.) staringfrom an estimated β_(q+1)(.), say β_(q+1)′(.).

[0044] Process 1 and 3 are run as regular turbo alpha and betacalculation with known initial points (with reduced size), process 2 and4 require estimated initial points.

[0045] The following algorithm can be used for obtaining α_(p)′(.) forprocess 2 and β_(q+1)′(.) for process 4. The first iteration start fromα_(p−d+1)(.) where d is an arbitrary amount of time steps. The state attime p−d+1 is treated as a uniform random variable. This implies thatthe probability of a specific state occurs at p−d+1 is ⅛ since the 3GPPturbo encoder has 8 system states. As a consequence, α_(p−d+1)(.)=⅛ andas is β_(q+d)(.) Starting from this uniform prior, when the processreaches at p, the estimate α_(p)′(.) results, and at q+1, the estimateβ_(q+1)′(.) results.

[0046] The amount of information extracted from the observation for theduration d is proportional to d. A longer d may give a better initialestimate. However, since the computation during d steps represents“overhead”, d should be increased more than a certain limit. While d maybe in the range of 1-20, simulation show that d=15˜20 provides decentresults. From the second iteration on, α_(p−d+1)(.) and β_(q+d)(.) canbe chosen by the same way as for the first iteration, or use the valuesresulted from process 1 and process 3 in previous iteration can be used.

[0047] Simulation scenarios are defined by SNR (signal to noise ratio).For each scenario, 2000 packets of size 5114 bits were randomlygenerated, turbo encoded, and subjected to AWGN noise. The “spoiled”packets were run through both the regular prior art and present parallelturbo decoders. For the parallel turbo decoders of the presentinvention, the number of division M=2 and the length for initialestimation d=20 in the parallel algorithm, and the appropriate values ofthe previous iteration as the starting points of the initial estimationof the current iteration were used.

[0048]FIG. 3 and FIG. 4 compare the BER (bit error rate) and BLER (blockerror rate, or packet error rate) of the regular turbo decoder andparallel turbo decoder under various SNR. The results were so close theyare not dissemble on the graphs.

[0049] Although the number of segments M=2 has been used as an example,a larger number of M may be used. In such case, the equations would havethe general formula as follows: L(U_(k))=f(α_(k)(.), β_(k)(.)). Thedefinitions of the estimated starting points would be α_(p)(.), . . . ,α_(w)(.) and β_(w)(.), . . . , β_(q+1)(.). The forward variable segmentsare calculated as follows: $\begin{matrix}{{\alpha_{1}\left( . \right)},\ldots \quad,{{\alpha_{p}\left( . \right)}\quad {starting}\quad {from}\quad {\alpha_{0}\left( . \right)}}} \\{{\alpha_{p + 1}\left( . \right)},\ldots \quad,{{\alpha_{q}\left( . \right)}\quad {starting}\quad {from}\quad {\alpha_{p}\left( . \right)}}} \\{\quad \vdots} \\{{\alpha_{w + 1}\left( . \right)},\ldots \quad,{{\alpha_{K}\left( . \right)}\quad {starting}\quad {from}\quad {\alpha_{w}\left( . \right)}}}\end{matrix}$

[0050] and the reverse variable segments are calculated as follows:$\begin{matrix}{{\beta_{K}\left( . \right)},\ldots \quad,{{\beta_{w + 1}\left( . \right)}\quad {starting}\quad {from}\quad {\beta_{K}\left( . \right)}}} \\{{\beta_{w}\left( . \right)},\ldots \quad,{{\beta_{v + 1}\left( . \right)}\quad {starting}\quad {from}\quad {\beta_{w + 1}\left( . \right)}}} \\{\quad \vdots} \\{{\beta_{q}\left( . \right)},\ldots \quad,{{\beta_{1}\left( . \right)}\quad {starting}\quad {from}\quad {{\beta_{q + 1}\left( . \right)}.}}}\end{matrix}$

[0051] The starting points for the forward variable are estimated from:$\begin{matrix}{{\alpha_{p - d + 1}\left( . \right)},\ldots \quad,{{\alpha_{p}\left( . \right)}\quad {and}}} \\{\quad \vdots} \\{{\alpha_{w - d + 1}\left( . \right)},\ldots \quad,{{\alpha_{w}\left( . \right)};}}\end{matrix}$

[0052] and for the backward segments from:

[0053] β_(w+d)(.), . . . ,β_(w)(.) and

[0054] β_(q+d)(.), . . . , β_(q)(.)

[0055] where d is an arbitrary amount of time steps.

[0056] It should also be noted that even though turbo decoders arediscussed, any system that uses the A Posteriori Probability decodingmay use the present invention.

[0057] Although the present invention has been described and illustratedin detail, it is to be clearly understood that this is done by way ofillustration and example only and is not to be taken by way oflimitation. The spirit and scope of the present invention are to belimited only by the terms of the appended claims.

1. A method of a turbo decoder using log A Posteriori ProbabilityL(u_(k)), where L(u_(k))=f(α_(k)(s), β_(k)(S)), the method comprising:dividing a forward variable α (.) and a backward variable β (.) into aplurality M of parallel segments of size p, q . . . w, where p+q, . . .+w equals the length of a coded word U; parallel calculating thesegments of forward variable α (.) and backward variable β (.); andcalculating L(u_(k)) using the parallel calculated segments of α (.) andβ (.).
 2. The method according to claim 1, wherein the forward variablesegments are calculated as follows: $\begin{matrix}{{\alpha_{1}\left( . \right)},\ldots \quad,{{\alpha_{p}\left( . \right)}\quad {starting}\quad {from}\quad {\alpha_{0}\left( . \right)}}} \\{{\alpha_{p + 1}\left( . \right)},\ldots \quad,{{\alpha_{q}\left( . \right)}\quad {starting}\quad {from}\quad {\alpha_{p}\left( . \right)}}} \\{\quad \vdots} \\{{\alpha_{w + 1}\left( . \right)},\ldots \quad,{{{\alpha_{K}\left( . \right)}\quad {starting}\quad {from}\quad {\alpha_{w}\left( . \right)}};}}\end{matrix}$

and the reverse variable segments are calculated as follows:$\begin{matrix}{{\beta_{K}\left( . \right)},\ldots \quad,{{\beta_{w + 1}\left( . \right)}\quad {starting}\quad {from}\quad {\beta_{K}\left( . \right)}}} \\{{\beta_{w}\left( . \right)},\ldots \quad,{{\beta_{v + 1}\left( . \right)}\quad {starting}\quad {from}\quad {\beta_{w + 1}\left( . \right)}}} \\{\quad \vdots} \\{{\beta_{q}\left( . \right)},\ldots \quad,{{\beta_{1}\left( . \right)}\quad {starting}\quad {from}\quad {{\beta_{q + 1}\left( . \right)}.}}}\end{matrix}$


3. The method according to claim 2, wherein the starting pointsα_(p)(.), . . . , α_(w)(.) are estimated, and the starting pointsβ_(w)(.), . . . , β_(q+1)(.) are estimated.
 4. The method according toclaim 3, wherein the starting points for the forward variable areestimated from: $\begin{matrix}{{\alpha_{p - d + 1}\left( . \right)},\ldots \quad,{\alpha_{p}\left( . \right)}} \\{\quad \vdots} \\{{\alpha_{w - d + 1}\left( . \right)},\ldots \quad,{{\alpha_{w}\left( . \right)};}}\end{matrix}$

and for the backward segments from: $\begin{matrix}{{\beta_{w + d}\left( . \right)},\ldots \quad,{\beta_{w}\left( . \right)}} \\\vdots \\{{\beta_{q + d}\left( . \right)},\ldots \quad,{\beta_{q}\left( . \right)}}\end{matrix}$

where d is an arbitrary amount of time steps.
 5. The method according toclaim 4, wherein d is in the range of 1 to
 20. 6. The method accordingto claim 4, wherein d is in the range of 15 to
 20. 7. The methodaccording to claim 4, wherein the starting points for the estimatedstates are uniform random variables.
 8. The method according to claim 4,wherein the starting points for the estimated states are a predeterminedstate.
 9. The method according to claim 4, wherein the starting pointfor the estimated states is one divided by the number of possiblestates.
 10. The method according to claim 1, wherein the segment sizesare set equal.
 11. The method according to claim 1, wherein thevariables are divided only into two segments p and q.
 12. A method ofdecoding using a log A Posteriori Probability ratio L(u_(k)) whereL(u_(k))=f(α_(k)(s), β_(k)(s) ), the method comprising: dividing aforward variable α (.) and a backward variable β (.) into two segments pand q where p+q equals the length of the code word U; parallelcalculating the forward segments: α₁(.), . . . ,α_(p)(.) starting from aknown α₀(.) and α_(p+1)(.), . . . ,α_(k)(.) starting from an estimatedα_(p)(.); parallel calculating the backward segments: β_(K)(.), . . . ,β_(q+1)(.) starting from a known β_(K)(.) and β_(q)(.), . . . , β₁(.)staring from an estimated β_(q+1)(.); and calculating L(u_(k)) using theparallel calculated segments of α (.) and β (.).
 13. A method accordingto claim 12, wherein the estimated starting point α_(p)(.) forα_(p+1)(.) is estimated from prior probabilities α_(p−d+)(.), . . . ,α_(p)(.), and the estimated starting point β_(q+)(.) for β_(q)(.) isestimated from prior probabilities β_(q+d)(.), . . . , β_(q+1)(.).
 14. Amethod according to claim 13, wherein d is in the range of 1 to
 20. 15.A method according to claim 13, wherein d is in the range of 15 to 20.16. A method according to claim 13, wherein the starting points for theestimated states are uniform random variables.
 17. A method according toclaim 13, wherein the starting points for the estimated states are apredetermined state.
 18. A method according to claim 13, wherein thestarting point for the estimated states is one divided by the number ofpossible states.
 19. A signal receiver including a decoder performingthe method according to claim
 1. 20. A signal receiver including adecoder performing the method according to claim 11.